Computer systems, such as hardware systems and software systems, that run on computers often have undetected flaws that can be exploited by hardware attacks or software attacks, such as malicious computer programs that are received over the Internet or other communication networks. The attacks can include Trojans, viruses, worms, spyware, and other malware. Many existing computer security systems combat the attacks by attempting to prevent the attacks from compromising any part of a computer system.
Traditional computer security systems provide relatively low assurance protection of the entire software system. Some systems can provide cryptographic mechanisms for encryption, integrity, and replay protection. Memory encryption protects the confidentiality of memory-resident data. Integrity protection prevents an attacker from causing any hidden modifications to the ciphertext (i.e., encrypted data, as opposed to plaintext which is unencrypted data) in memory. Replay protection eliminates any undetected temporal substitution of the ciphertext. In the absence of encryption, integrity, and replay protections, an attacker with physical access to the system can record snapshots of data lines and replay the data lines at a later point in time to modify the data lines and attack the computer system.